<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //
        // var name='xieyanzu';// 变量
        // function fun2(){} // 函数
        // 对象第一种 申明方式  使用字面量
        var xiaoxie={
            // 属性    属性名：属性值
            age:17,
            sex:'男',
            // 方法    方法名： 方法
            play:function(game='lol'){
                console.log('玩'+game);
            }
            // 属性和方法之间使用  , 隔开
        };

        // 直接给对象添加属性  以及方法
        xiaoxie.name='xieyanzu';
        // 直接添加方法
        xiaoxie.ganfan=function(food){
            console.log('吃'+food);
        }
        console.log(xiaoxie);
        console.log(typeof xiaoxie);

        // 2 使用new 来声明
        // 也可以使用 new Object(); 声明对象  O大写
        var obj = new Object();
        
        obj.name='xieyanzu2';
        obj.age=17;
        obj.fun1=function(){
            console.log('这是一个方法');
            return 'hello';
        }

        console.log(obj);
        console.log(typeof obj);

        // 如何取到对象的值
        // 第一种方法  对象名.属性名
        console.log(obj.name);
        // 取方法  不加括号 取得是代码
        // 加括号 取得是返回值
        // 对象名.方法名()
        console.log(obj.fun1());

        // 第二种  对象名['属性名']
        console.log(obj['age']);
        // 对象名['方法名']()
        console.log(obj['fun1']());
    </script>
</body>
</html>